Calcular índices de concavidad y perfiles longitudinales de cursos fluviales

Imprimir lista de mapas ráster y vectoriales dentro en la región/localización activa

execGRASS(
  'g.list',
  flags = 't',
  parameters = list(
    type = c('raster', 'vector')
  )
)
## raster/LfpNetwork-flds-Oz
## raster/LfpNetwork-outlet-Oz
## raster/MASK
## raster/accum-de-rwshed
## raster/aspect
## raster/basins
## raster/dem
## raster/drainage-dir-de-rstr
## raster/drainage-dir-de-rwshed
## raster/half-basins
## raster/order-hack-gravelius
## raster/order-horton
## raster/order-shreve
## raster/order-strahler
## raster/order-topology
## raster/ozama-basin
## raster/ozama-stream-de-rstr
## raster/pcurv
## raster/r-stream-basins-1
## raster/r-stream-basins-2
## raster/r-stream-basins-3
## raster/r-stream-basins-4
## raster/r-stream-basins-5
## raster/r-stream-basins-6
## raster/r-stream-basins-7
## raster/slope
## raster/stream-de-rwshed
## raster/tcurv
## vector/LfpNetwork_lfp_all_final_ozm
## vector/LfpNetwork_lfp_all_final_ozm1
## vector/LfpNetwork_lfp_all_final_ozm3
## vector/LfpNetwork_lfp_all_final_ozm4
## vector/LfpNetwork_lfp_all_final_ozm5
## vector/LfpNetwork_lfp_ozm
## vector/LfpNetwork_lfp_ozm1
## vector/LfpNetwork_lfp_ozm3
## vector/LfpNetwork_lfp_ozm4
## vector/LfpNetwork_lfp_ozm5
## vector/LfpNetwork_outlet_Oz
## vector/LfpNetwork_tributaries_ozm
## vector/LfpNetwork_tributaries_ozm1
## vector/LfpNetwork_tributaries_ozm3
## vector/LfpNetwork_tributaries_ozm4
## vector/LfpNetwork_tributaries_ozm5
## vector/LfpNetwork_tributaries_preconf_ozm
## vector/LfpNetwork_tributaries_preconf_ozm1
## vector/LfpNetwork_tributaries_preconf_ozm3
## vector/LfpNetwork_tributaries_preconf_ozm4
## vector/LfpNetwork_tributaries_preconf_ozm5
## vector/c_ozama
## vector/dem_extent
## vector/order_all
## vector/ozama_basin
## vector/ozama_stream_de_rstr
## vector/r_stream_basins_1
## vector/r_stream_basins_2
## vector/r_stream_basins_3
## vector/r_stream_basins_4
## vector/r_stream_basins_5
## vector/r_stream_basins_6
## vector/r_stream_basins_7

Obtener coordenada

mapview(order, col.regions = 'blue', legend = FALSE)

mapview(lfp4326, col.regions = ‘blue’, legend = FALSE) ## Obtener cursos más largos (cargar función propia)

devtools::source_url('https://raw.githubusercontent.com/geofis/rgrass/master/lfp_network.R') #Cargada como función "LfpNetwork"
LfpNetwork(
  xycoords = my_trans(c(-69.79669, 18.57400)),
  suffix = 'ozm2',
  stream_vect = 'order_all',
  direction = 'drainage-dir-de-rstr'
)

Imprimir lista de mapas ráster y vectoriales

execGRASS(
  'g.list',
  flags = 't',
  parameters = list(
    type = c('raster', 'vector')
  )
)
## raster/LfpNetwork-flds-Oz
## raster/LfpNetwork-outlet-Oz
## raster/MASK
## raster/accum-de-rwshed
## raster/aspect
## raster/basins
## raster/dem
## raster/drainage-dir-de-rstr
## raster/drainage-dir-de-rwshed
## raster/half-basins
## raster/order-hack-gravelius
## raster/order-horton
## raster/order-shreve
## raster/order-strahler
## raster/order-topology
## raster/ozama-basin
## raster/ozama-stream-de-rstr
## raster/pcurv
## raster/r-stream-basins-1
## raster/r-stream-basins-2
## raster/r-stream-basins-3
## raster/r-stream-basins-4
## raster/r-stream-basins-5
## raster/r-stream-basins-6
## raster/r-stream-basins-7
## raster/slope
## raster/stream-de-rwshed
## raster/tcurv
## vector/LfpNetwork_lfp_all_final_ozm
## vector/LfpNetwork_lfp_all_final_ozm1
## vector/LfpNetwork_lfp_all_final_ozm2
## vector/LfpNetwork_lfp_all_final_ozm3
## vector/LfpNetwork_lfp_all_final_ozm4
## vector/LfpNetwork_lfp_all_final_ozm5
## vector/LfpNetwork_lfp_ozm
## vector/LfpNetwork_lfp_ozm1
## vector/LfpNetwork_lfp_ozm2
## vector/LfpNetwork_lfp_ozm3
## vector/LfpNetwork_lfp_ozm4
## vector/LfpNetwork_lfp_ozm5
## vector/LfpNetwork_outlet_Oz
## vector/LfpNetwork_tributaries_ozm
## vector/LfpNetwork_tributaries_ozm1
## vector/LfpNetwork_tributaries_ozm2
## vector/LfpNetwork_tributaries_ozm3
## vector/LfpNetwork_tributaries_ozm4
## vector/LfpNetwork_tributaries_ozm5
## vector/LfpNetwork_tributaries_preconf_ozm
## vector/LfpNetwork_tributaries_preconf_ozm1
## vector/LfpNetwork_tributaries_preconf_ozm2
## vector/LfpNetwork_tributaries_preconf_ozm3
## vector/LfpNetwork_tributaries_preconf_ozm4
## vector/LfpNetwork_tributaries_preconf_ozm5
## vector/c_ozama
## vector/dem_extent
## vector/order_all
## vector/ozama_basin
## vector/ozama_stream_de_rstr
## vector/r_stream_basins_1
## vector/r_stream_basins_2
## vector/r_stream_basins_3
## vector/r_stream_basins_4
## vector/r_stream_basins_5
## vector/r_stream_basins_6
## vector/r_stream_basins_7

Representar con leaflet

lfp <- readVECT('LfpNetwork_lfp_all_final_ozm2')
lfp4326 <- spTransform(lfp, CRSobj = CRS("+init=epsg:4326"))
lfp_con_id <- leaflet() %>%
  addProviderTiles(providers$Stamen.Terrain, group = 'terrain') %>%
  addPolylines(
    data = lfp4326, weight = 3, opacity = 0.7, group = 'order',
    label = ~as.character(cat),
    highlightOptions = highlightOptions(color = "white",
                                      weight = 5, bringToFront = F, opacity = 1),
    labelOptions = labelOptions(noHide = T,
                                style = list(
                                  "font-size" = "8px",
                                  "background" = "rgba(255, 255, 255, 0.5)",
                                  "background-clip" = "padding-box",
                                  "padding" = "1px"))) %>% 
  leafem::addHomeButton(extent(lfp4326), 'Ver todo')
lfp_con_id
lfp_con_id %>% mapview::mapshot(file = 'lfp_con_id_salida.png')

Exportar a KML

execGRASS(
  'v.out.ogr',
  flags = c('overwrite','quiet'),
  parameters = list(
    input = 'LfpNetwork_lfp_all_final_ozm2',
    output = 'lfp_ozm_kml.km2',
    format = 'KML',
    dsco = 'NameField=cat'
  )
)

Obtención de perfiles longitudinales e índices de concavidad

source('lfp_profiles_concavity.R') #Cargado como función "LfpProfilesConcavity"
ozama_conv_prof <- LfpProfilesConcavity(
  xycoords = my_trans(c(-69.79669, 18.57400)),
  network = 'LfpNetwork_lfp_all_final_ozm2',
  prefix = 'Oz',
  dem = 'dem',
  direction = 'drainage-dir-de-rstr',
  crs = '+init=epsg:32619',
  smns = 0.5,
  nrow = 5)

Mostrar resultados

ozama_conv_prof$profiles

ozama_conv_prof$concavityindex
##    stream           ci
## 1    Oz-1  0.527551719
## 2    Oz-2  0.529562778
## 3    Oz-3 -0.325761258
## 4    Oz-4 -0.189211800
## 5    Oz-5  0.415185789
## 6    Oz-6  0.115128118
## 7    Oz-7  0.249550379
## 8    Oz-8 -0.166787935
## 9    Oz-9 -0.102383590
## 10  Oz-10 -0.115697284
## 11  Oz-11 -0.281735239
## 12  Oz-12  0.260149441
## 13  Oz-13  0.070424447
## 14  Oz-14 -0.008299744
## 15  Oz-15 -0.207386436
## 16  Oz-16 -0.215770156
## 17  Oz-17  0.068824100
## 18  Oz-18  0.348178214
## 19  Oz-19  0.441789603
## 20  Oz-20  0.243936131
## 21  Oz-21  0.335831025
## 22  Oz-22  0.278347732
## 23  Oz-23  0.028932012
## 24  Oz-24  0.027270187
## 25  Oz-25  0.362996706
## 26  Oz-26  0.329042962
## 27  Oz-27  0.251348856
## 28  Oz-28 -0.112130193
## 29  Oz-29  0.242635037
## 30  Oz-30  0.444079879
## 31  Oz-31  0.194126185
## 32  Oz-32  0.111066238
## 33  Oz-33  0.193094844
## 34  Oz-34  0.437523314
## 35  Oz-35  0.271611595
## 36  Oz-36  0.021477916
## 37  Oz-37  0.383352815
## 38  Oz-38  0.603271102
## 39  Oz-39  0.326885995
## 40  Oz-40  0.160591247
## 41  Oz-41  0.104667563
## 42  Oz-42  0.378545579
## 43  Oz-43  0.088584446
## 44  Oz-44  0.385675133
## 45  Oz-45  0.415769676
## 46  Oz-46  0.164321824
## 47  Oz-47  0.279905022
## 48  Oz-48 -0.005448813
## 49  Oz-49  0.124545329
## 50  Oz-50  0.577756910
## 51  Oz-51  0.325600945
## 52  Oz-52  0.393548638
## 53  Oz-53  0.726595968
## 54  Oz-54 -0.108147751
## 55  Oz-55  0.151432726
## 56  Oz-56  0.086306430
## 57  Oz-57  0.241957449
## 58  Oz-58  0.312652008
## 59  Oz-59  0.154465858
## 60  Oz-60  0.239438519
## 61  Oz-61  0.076166449
## 62  Oz-62 -0.258579128
## 63  Oz-63  0.228661366
## 64  Oz-64  0.024955309
## 65  Oz-65  0.114097729
## 66  Oz-66  0.641717988
ozama_conv_prof$dimensionlessprofiles$layers[[2]]$aes_params$size <- 2
ozama_conv_prof$dimensionlessprofiles$theme$text$size <- 12
ozama_conv_prof$dimensionlessprofiles

Tabla dx/dy, tanto en metros como adimensional. Útiles para construir perfiles por cuenta propia

ozama_conv_prof$lengthzdata %>% tibble::as.tibble()
## Warning: `as.tibble()` is deprecated, use `as_tibble()` (but mind the new semantics).
## This warning is displayed once per session.
## # A tibble: 8,810 x 4
##    stream length     z rowname
##    <fct>   <dbl> <dbl>   <int>
##  1 Oz-1      0    4.63       1
##  2 Oz-1     89.1  4.71       2
##  3 Oz-1    126.   4.75       3
##  4 Oz-1    215.   4.83       4
##  5 Oz-1    304.   4.92       5
##  6 Oz-1    430.   5.04       6
##  7 Oz-1    520.   5.12       7
##  8 Oz-1    556.   5.15       8
##  9 Oz-1    646.   5.23       9
## 10 Oz-1    682.   5.26      10
## # … with 8,800 more rows
ozama_conv_prof$lengthzdatadmnls %>% tibble::as.tibble()
## # A tibble: 8,810 x 6
##    stream length     z rowname length.dmnls  z.dmnls
##    <fct>   <dbl> <dbl>   <int>        <dbl>    <dbl>
##  1 Oz-1      0    4.63       1      0       0       
##  2 Oz-1     89.1  4.71       2      0.00109 0.000293
##  3 Oz-1    126.   4.75       3      0.00155 0.000414
##  4 Oz-1    215.   4.83       4      0.00264 0.000706
##  5 Oz-1    304.   4.92       5      0.00374 0.000996
##  6 Oz-1    430.   5.04       6      0.00529 0.00140 
##  7 Oz-1    520.   5.12       7      0.00638 0.00168 
##  8 Oz-1    556.   5.15       8      0.00683 0.00179 
##  9 Oz-1    646.   5.23       9      0.00793 0.00205 
## 10 Oz-1    682.   5.26      10      0.00838 0.00216 
## # … with 8,800 more rows

Limpiar archivo de bloqueo del conjunto de mapas de GRASS

unlink_.gislock()